草庐IT

在 ec2 实例中执行例程

全部标签

ruby-on-rails - Ruby:比较 2 个数组的匹配项,并计算匹配实例的数量

我有2个数组:@array1=[a,b,c,d,e]@array2=[d,e,f,g,h]我想比较两个数组以找到匹配项(d,e)并计算找到的匹配项数(2)?#yes,buthowtocountinstances?nomatchesfound...提前致谢~ 最佳答案 你可以用数组交集来做到这一点:@array1=['a','b','c','d','e']@array2=['d','e','f','g','h']@intersection=@array1&@array2@intersection现在应该是['d','e']。然后您可以

ruby-on-rails - 只有当所有其他验证都通过时才执行一个验证

我正在构建自定义验证,使用外部API检查银行帐号和排序代码,以测试它们是否存在(即是否是正确有效的英国银行账户)).由于这是一项昂贵的操作,除非帐号和排序代码通过Rails的内置验证,否则我不想打扰API。例如,我有这些基本验证:validates_presence_of:sort_code,:account_numbervalidates_format_of:sort_code,:with=>Regexes::SORT_CODEvalidates_format_of:account_number,:with=>Regexes::ACCOUNT_NUMBER然后我有我的自定义验证:va

ruby-on-rails - 如何使用 AREL 执行条件 where 子句

如何做一个有条件的where子句?我有一个运行查询的rake任务。假设我正在构建这样的查询:residentials=Residential.where(:is_active=>true)现在,如果我将某个参数传递给rake任务,我想添加到where子句中。我在想这样的事情:residentials.where(:something_else=>true)ifparam_was_passed但这只是替换了现有的where子句。如何将它添加到现有的where子句中? 最佳答案 可以链接where语句residentials=Resid

ruby-on-rails - Capistrano 3 在目录中执行

我正在尝试为Capistrano3编写一个任务,该任务涉及在当前版本的目录中执行“composerinstall”。它看起来像这样:namespace:composerdodesc'InstalldependencieswithComposer'task:installdoonroles(:web)dowithinrelease_pathdoexecute"#{fetch(:composer_command)}install"endendendendcomposer_command在暂存和生产文件中设置-在我的特定情况下为php/home/user/composer.phar由于某些原

ruby - Ruby 的 attr_accessor 如何产生类变量或类实例变量而不是实例变量?

如果我有一个带有attr_accessor的类,它会默认创建一个实例变量以及相应的getter和setter。但不是创建实例变量,有没有办法让它创建类变量或类实例变量呢? 最佳答案 像这样:classTYourClassclass您可以将此视为打开类的元类(类本身是其实例)并向其添加属性。attr_accessor是类Class的一个方法,它给类添加了两个方法,一个读取实例变量,一个设置实例变量。这是一个可能的实现:classClassdefmy_attr_accessor(name)define_methodnamedoinsta

ruby - 如何替换 ruby​​ 中模式的每个实例?

string.sub看起来它只替换了第一个实例。是否有可以替代所有模式的选项或其他方法?你能在perl之类的正则表达式中完成吗?(我觉得像r/blah/blah/)...并+1给任何能告诉我为什么string.sub只替换第一个匹配项的人? 最佳答案 String.gsub应该可以解决问题。引用文档:gsub(pattern,replacement)→new_strReturnsacopyofstrwiththealloccurrencesofpatternsubstitutedforthesecondargument.Thepat

ruby - 错误:执行 gem 时...(Gem::FilePermissionError)

我已经检查了所有其他类似的答案,但没有一个与我的答案完全相同,这些解决方案中的任何一个都不适合我。gemenvironment和sudogemenvironment给出相同的结果:RubyGemsEnvironment:-RUBYGEMSVERSION:1.5.3-RUBYVERSION:1.8.7(2011-12-28patchlevel357)[x86_64-linux]-INSTALLATIONDIRECTORY:/usr/local/lib/ruby/gems/1.8-RUBYEXECUTABLE:/usr/local/bin/ruby-EXECUTABLEDIRECTORY:

ruby-on-rails - 如何在 Ruby 中创建一个新的 Date 实例

如何在给定日期的IRB中创建一个新的日期对象。以下无效。1.9.3p194:053>require'active_support'=>true1.9.3p194:054>Date.new=>#1.9.3p194:055>Date.parse('12/01/2012')NoMethodError:undefinedmethod`parse'forDate:Classfrom(irb):551.9.3p194:055>Date.new('12/01/2012')ArgumentError:wrongnumberofarguments(1for0) 最佳答案

ruby - 如何使用 Ruby 测试/单元执行单个测试?

有什么方法可以在ruby​​测试/单元框架下执行单个测试,而不是自动运行所有测试用例。我知道我可以通过使用Rake来实现这一点,但我现在还没有准备好切换到rake。rubyunit_test.rb#thiswillrunallthetestcaserubyunit_test.rbtest1#thiswillonlyruntest1 最佳答案 您可以在命令行上传递-n选项来运行单个测试:rubymy_test.rb-ntest_my_method其中“test_my_method”是您要运行的测试方法的名称。

ruby - rspec:如何 stub 构造函数调用的实例方法?

classAdefinitialize@x=do_somethingenddefdo_something42endend如何在调用原始实现之前在rspec中stubdo_something(从而将42分配给@x)?当然,在不改变实现的情况下。 最佳答案 Here'sthecommitwhichaddsthefeaturetorspec-这是在2008年5月25日。有了这个你可以做A.any_instance.stub(do_something:23)但是,rspec的最新gem版本(1.1.11,2008年10月)没有这个补丁。Th